package com.szh.zx.gaoDingJavaBook.chapter8.three;

import java.util.HashSet;
import java.util.Iterator;

class R{
	int count;

	public R(int count) {
		this.count = count;
	}

	@Override
	public String toString() {
		return "R{" +
				"count=" + count +
				'}';
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj){
			return true;
		}
		if (obj != null && obj.getClass() == R.class){
			R r = (R) obj;
			return this.count == r.count;
		}
		return false;
	}

	@Override
	public int hashCode() {
		return this.count;
	}
}
public class HashSetTest2 {
	public static void main(String[] args) {
		HashSet hashSet = new HashSet();
		hashSet.add(new R(5));
		hashSet.add(new R(-3));
		hashSet.add(new R(-2));
		hashSet.add(new R(9));
//		 打印HashSet集合，集合没有重复元素
		System.out.println(hashSet);
//		取出第一个元素
		Iterator iterator =hashSet.iterator();
		R first = (R) iterator.next();
//		 为第一个元素赋值
		first.count = -3;
//		再次输出hashSet集合，集合元素有重复元素
		System.out.println("修改元素值，俩个相同对象 值一样，hashcode不一致："+hashSet);
//		删除count = -3 的元素
		hashSet.remove(new R(-3));
		System.out.println("删除元素-3之后："+hashSet);
		System.out.println("hs 是否包含count -2 的R 对象？："+hashSet.contains(new R(-2)));
		System.out.println("hs 是否包含count -3 的R 对象？：" + hashSet.contains(new R(-3)));
	}
}
